'use strict';
const Service = require('egg').Service;
class PostService extends Service {

    // 获取所有文章
    async findAll(query={},sort={},options={}) {
        // 这里需要注意： 只有安装了 mongoose 后， model 才会挂载到 this.ctx 上。
        return this.ctx.model.Post.find(query,{},options).sort(sort).exec();
    }

    /*
    * 获取首页所有文章的数量
    * @param {String} query 搜索关键词
    */
    getArticleCount(query={}) {
        return this.ctx.model.Post.count(query).exec();
    }

    // 发布新文章
    async create(post) {
        this.ctx.model.Post.create(post);
    }

    //保存编辑文章
    async findAndUpdate(id, post) {
        this.ctx.model.Post.findOneAndUpdate({_id: id}, post).exec();
    }

    // 搜索文章
    async searchArticle(query) {
        return this.ctx.model.Post.find(query).sort({_id:-1,read:-1}).exec();
    }
    
    //根据ID查文章详细
    async findById(id) {
        return this.ctx.model.Post.findById(id).exec();
    }

    // 删除指定文章
    async findAndRemove(id) {
        this.ctx.model.Post.remove({_id: id},function (err) {
            console.log(err);
        });
    }
}
module.exports = PostService;